批量文件重命名(字符串的替换,删除,连接)

此次练习目的:

1
D:\OPPO_R11\indoor\day\tripod\light\original\lab\lab_01.mp4

重命名为

1
D:\OPPO_R11\indoor\day\tripod\light\original\lab\OPPO_R11indoor_day_tripod_light_lab_01.mp4

即将文件名中的名字前面加上其路径。

1.用os.walk()函数遍历文件夹下的所有文件,返回root,dir,files。其中root为:

1
D:\OPPO_R11\indoor\day\tripod\light\original\lab

file为

1
lab_01.mp4

2.用os.path.join连接root和file得到文件的原始绝对路径,即为:

1
D:\OPPO_R11\indoor\day\tripod\light\original\lab\lab01.mp4

3.去掉多余的一个lab

1
2
string=str.split("_")
new_file=string[-1]

得到的new_file即为01.mp4

4.去掉’D:’,并将’/‘替换为‘_’,主要用replace()函数,其中替换’\’是一个难点。直接运行:

1
new_name=new_name.replace('\','_')

报错:SyntaxError: EOL while scanning string literal

因为’\’被当成了转义字符,用os.sep代替’\’就可以解决问题了。

1
new_name=new_name.replace(os.sep,'_')

5.os.rename(original_name,new_file_name)即可实现文件重命名。注意这里的original_name,new_file_name都是指的是绝对路径名。